package model

// Meta 定义了路由的额外信息（用于菜单显示和权限控制）
type Meta struct {
	Title string   `json:"title"`           // 菜单标题
	Icon  string   `json:"icon,omitempty"`  // 菜单图标（可选）
	Roles []string `json:"roles,omitempty"` // 可访问该路由的角色列表（可选）
}

// Route 定义了一个路由对象（可能包含子路由）
type Route struct {
	Path       string  `json:"path"`                 // 路由路径
	Component  string  `json:"component,omitempty"`  // 对应的组件路径（如 layout/Layout 或 views/x）
	Redirect   string  `json:"redirect,omitempty"`   // 重定向地址（可选）
	Name       string  `json:"name,omitempty"`       // 路由名称（前端缓存、keep-alive 相关）
	Hidden     bool    `json:"hidden,omitempty"`     // 是否在菜单中隐藏（可选）
	AlwaysShow bool    `json:"alwaysShow,omitempty"` // 是否总是显示父路由（即使只有一个子菜单）
	Meta       *Meta   `json:"meta,omitempty"`       // 元信息（权限、图标、标题等）
	Children   []Route `json:"children,omitempty"`   // 子路由
}
